#include "sqlist.h"
#define MAXSIZE 10     // 定义最大长度
typedef int DATA_TYPE; // 定义数据类型

// 定义顺序表结构体
typedef struct data
{
    DATA_TYPE data[MAXSIZE]; // 定义一个数组
    int Length;              // 定义长度
} Sqlist;

// 初始化顺序表
void Initlist(Sqlist *L)
{
    L->Length = 0; // 初始化长度为0
    printf("初始化成功%d\n", L->Length);
}

// 插入操作
int InsertStaticList(Sqlist *L, int i, DATA_TYPE e)
{
    // 判断插入位置是否合法
    if (i < 1 || i > L->Length + 1)
    {
        printf("插入位置不合法\n");
        return 0;
    }
    // 判断插入是否已满
    if (L->Length == MAXSIZE)
    {
        printf("插入失败，顺序表已满\n");
        return 0;
    }
    // 将插入位置以后的数据后移一位
    for (int j = L->Length; j >= i; j--)
    {
        L->data[j] = L->data[j - 1];
    }
    // 插入新数据
    L->data[i - 1] = e;
    L->Length++;
    return 1;
}

// 打印顺序表
void PrintStaticList(Sqlist *L)
{
    for (int i = 0; i < L->Length; i++)
    {
        printf("%d ", L->data[i]);
    }
    printf("\n");
}


void main()
{
    Sqlist L;
    Initlist(&L); // 初始化顺序表
    // 插入元素
    InsertStaticList(&L, 1, 123);
    InsertStaticList(&L, 2, 234);
    InsertStaticList(&L, 3, 34);
    PrintStaticList(&L);
}